package com.amigo.online.provider.sync.cloud.ribbon;

import java.util.List;

import com.netflix.loadbalancer.BaseLoadBalancer;
import com.netflix.loadbalancer.ILoadBalancer;
import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.PingUrl;
import com.netflix.loadbalancer.Server;

/**
 * 自定义Ribbon负载均衡器
 * <code>MyRibbonRule.java</code>
 * <p>功能:
 *
 * <p>Copyright 南京阿觅谷 2018 All right reserved.
 *
 * @author zhaox 时间 2018年9月12日 下午4:27:13
 * @version 1.0
 * </br>最后修改人 无
 */
public class MyRibbonRule implements IRule {

    ILoadBalancer lb;

    //默认选择第一个
    @Override
    public Server choose(Object key) {
        List<Server> servers = lb.getAllServers();
        return servers.get(0);
    }

    @Override
    public void setLoadBalancer(ILoadBalancer lb) {
        this.lb = lb;

    }

    @Override
    public ILoadBalancer getLoadBalancer() {
        return this.lb;
    }

    public void test() {
        BaseLoadBalancer lb = new BaseLoadBalancer();
        lb.setPing(new PingUrl());
        lb.setPingInterval(2);

    }

}
 